from selenium import webdriver
import time
from selenium.webdriver.support.wait import WebDriverWait

driver=webdriver.Chrome(r'D:\software\chromedriver\chromedriver_win32-84.0.4147\chromedriver.exe')


# 监控联想主页
# 打开活动页面
driver.get('https://item.lenovo.com.cn/product/1009373.html')
# driver.get('https://item.lenovo.com.cn/product/1007679.html')
# 自动登录我现在解决不了，因为无法判断是否已经登录
# search_button = driver.find_element_by_xpath('//*[@class="login"]')
# search_button.click()

# 留20s去登陆
time.sleep(20)

print('登录完成')



flag=0
def createBill(flag):
    try:
        # 等一秒,显式等待网页立即购买的按钮刷出来,抛异常被捕获，然后刷新继续等
        WebDriverWait(driver, 1, 0.01).until(
            lambda el: driver.find_element_by_xpath('//*[@id="ljgm"][@title="立即购买"]'))

        search_button = driver.find_element_by_xpath('//*[@id="ljgm"][@title="立即购买"]')
        search_button.click()
        flag=1
    except Exception:
        print('时间没到')
        driver.refresh()
    return flag

while(flag==0):
    # 不等于0说明已经进入订单界面
    flag=createBill(flag)


flag=0
def submitBill(flag):
    try:
        # TODO 等待，等待提交订单按钮和地址加载出来
        WebDriverWait(driver,3,0.01).until(
                    lambda el:driver.find_element_by_xpath('//span[@class="fr submitBtn"]'))
        #等快递地址
        WebDriverWait(driver,3,0.01).until(
                    lambda el:driver.find_element_by_xpath('//li[@class="selected default"]'))

        submit_btn = driver.find_element_by_xpath('//span[@class="fr submitBtn"]')
        submit_btn.click()
        flag=1
        print('抢购成功')
    except Exception:
        print('提交按钮还没出来')
        driver.refresh()
    return flag

while(flag==0):
    # 不等于0说明已经提交了
    flag = submitBill(flag)


#关闭浏览器
time.sleep(600)
driver.quit()